Computing devices have a limited supply of physical memory that is used in the execution of computing applications to hold data and instructions. This physical memory is typically made available to and shared between multiple applications and possibly multiple users.
Most modern operating systems enable multiple applications to execute conceptually, from the perspective of the user, at the same time. These multi-tasking operating systems can enable the sharing of one or more processors between the applications, using a variety of known techniques.
The execution of multiple applications in this manner, however, also places increased demands on the fixed amount of physical memory of a computing system or device, as several applications may be competing for space in physical memory. Even in instances where only a single application is to be executed, if the application program is large, it may be difficult to find sufficient space in physical memory to store it. Furthermore, if multiple application programs were to be loaded in their entirety into physical memory, then fewer applications would be able to execute, even though certain sections of the application programs may not be needed in physical memory during a given phase of execution of the loaded applications at a particular point in time.
Accordingly, modern operating systems of many computing systems or devices, such as desktop or laptop devices, manage physical memory (“real storage”) using a technique called virtual storage or virtual memory. The virtual storage concept refers to a memory management technique in which part of an application program is stored on a separate storage medium, such as a disk, and is brought into the physical memory of the computing system or device for execution only as needed. The storage medium acts as an extension of the physical memory that is made available for applications and data. Since only part of an application program is in real storage at any given time, the amount of physical memory needed to execute a given application can be minimized.
Memory management problems that virtual storage seeks to address may be more prominent in small computing devices. In particular, mobile devices (e.g. handheld computers) generally have limited real storage available to them given their size, and given other resource constraints such as battery life. However, unlike many desktop or laptop computing systems and devices, mobile devices are generally not constructed or equipped with higher capacity storage media such as hard disks or the like, which might be used as virtual storage.